#!/usr/bin/env python3

'''
基础类型
'''

#python 中的变量声明不是必须的，但使用之前都需要赋值。这是指的“变量类型”实际上是指内存中对象的类型。

_int = 100;
_flot = 100.0;
_string = 'zmp';

print(_int);
print(_flot);
print(_string);

'''
python3中的6个标准数据类型
Number 数字
String 字符串
List 列表
Tuple 元组
Sets 集合
Dictionary 字典
'''

#Number 数字 支持 int float bool complex (复数)

a,b,c,d = 100,100.0,True,1j;
print(type(a),type(b),type(c),type(d));

#<class 'int'> <class 'float'> <class 'bool'> <class 'complex'>

#String 字符串

str='zmpbaby';

print(str);
print(str[0:1]);
print(str[:3]);
print(str[3:]);
print(str[3]);
print(str+'is sure');
print(str*10);

str*=2;
print(str);

print('zm0p' in str);

#String 内建函数

print(str.capitalize());    #将字符串首字符大写

print(str.center(30));        #返回一个制定狂赌居中的字符串 默认填充符为空格
print(str.center(30,'#'));    #尝试使用#号

#小练习

data=r'''
在Python2中，普通字符串是以8位ASCII码进行存储的，
而Unicode字符串则存储为16位unicode字符串，这样能够表示更多的字符集。
使用的语法是在字符串前面加上前缀 u。
在Python3中，所有的字符串都是Unicode字符串。
''';    #将该段文本在控制台中居中显示

#方法1
for line in data.split('\n'):
  if line != '':print(line.center(80,'#'));
#方法2 函数式
t = '\n'.join(list(filter(None,map(lambda line: line.center(80,'#') if line != '' else None,data.split('\n')))));
print(t);

#斐波那契数列

a,b = 0,1
while b<10:
  print(b,end=',');
  a,b=b,a+b;
print();